home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11.lha / libX11 / libx11.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-22  |  6.3 KB  |  294 lines

  1. /* Copyright (c) 1996 by Terje Pedersen.  All Rights Reserved   */
  2. /*                                                              */
  3. /* By using this code you will agree to these terms:            */
  4. /*                                                              */
  5. /* 1. You may not use this code for profit in any way or form   */
  6. /*    unless an agreement with the author has been reached.     */
  7. /*                                                              */
  8. /* 2. The author is not responsible for any damages caused by   */
  9. /*    the use of this code.                                     */
  10. /*                                                              */
  11. /* 3. All modifications are to be released to the public.       */
  12. /*                                                              */
  13. /* Thats it! Have fun!                                          */
  14. /* TP                                                           */
  15. /*                                                              */
  16.  
  17. /***
  18.    NAME
  19.      libX11
  20.    PURPOSE
  21.      common includes to libX11
  22.    NOTES
  23.      
  24.    HISTORY
  25.      Terje Pedersen - Dec 22, 1994: Created.
  26. ***/
  27.  
  28. #ifndef LIBX11
  29. #define LIBX11
  30.  
  31. #ifdef _M68020
  32. #define __USE_SYSBASE 1
  33. #endif
  34.  
  35. #include <proto/exec.h>
  36.  
  37. #include <exec/types.h>
  38. #include <exec/memory.h>
  39.  
  40. #ifdef _M68881
  41. #include <math.h>
  42. #include <m68881.h>
  43. #else
  44. #include <math.h>
  45. #endif
  46.  
  47. #include <assert.h>
  48.  
  49. #include <X11/X.h>
  50. #include <X11/Xlib.h>
  51.  
  52. typedef struct {
  53.   int x,y;
  54.   unsigned int width,height;
  55.   unsigned long border,background;
  56.   char deleted;
  57.   int parent,id,mapped;
  58. } X11winchild;
  59.  
  60. typedef struct {
  61.   struct BitMap *pBitMap;
  62.   int  width,height,depth;
  63.   char bTileStipple;
  64. } X11BitMap_t;
  65.   
  66. extern X11winchild *X11DrawablesChildren;
  67.  
  68. /*extern X11winchild children[];*/
  69. /*extern X11userdata *Xuserdata;*/
  70. extern int X11mapping;
  71.  
  72. extern void X11init_fonts(void);
  73. extern void X11exit_fonts(void);
  74. extern void X11init_cursors(void);
  75. extern void X11exit_cursors(void);
  76. extern void X11exit_resources(void);
  77. extern void X11init_resources(void);
  78. extern void X11initcmap(void);
  79. extern void X11updatecmap(void);
  80. extern void X11SetupVisual(void);
  81. extern int X11findparent(int);
  82. extern void X11delayfor(int,int);
  83. extern void X11resource_exit(int);
  84.  
  85. extern void X11init_events(void);
  86. extern void X11exit_events(void);
  87. extern void X11testback(int,int,int);
  88. extern int X11NewSubWindow(int);
  89. extern int X11NewBitmap(struct BitMap *,int width,int height,int depth);
  90. extern int X11NewWindow(struct Window *);
  91. extern void X11exit_cmaps(void);
  92. extern void X11init_cmaps(void);
  93. extern void X11init_clipping(void);
  94. extern void X11exit_clipping(void);
  95. extern void X11init_drawing(void);
  96. extern void X11exit_drawing(void);
  97.  
  98. extern void init_backfillrp(int,int);
  99.  
  100. int GetBackground(struct Window *);
  101. void SetBackground(int);
  102.  
  103. typedef struct {
  104.   struct TextFont *tfont;
  105.   struct TextAttr *tattr;
  106. } sFont;
  107.  
  108. typedef struct {
  109.   UWORD *cdata;
  110.   int size; /* had to add this to store size used in AllocMem -tp */
  111.   unsigned char hotx,hoty;
  112. } CursorData; /* ,*Cursor */
  113.  
  114. /* resource errors */
  115.  
  116. #define WINDOW1 1
  117. #define WINDOW2 2
  118. #define WINDOW3 3
  119. #define WINDOW4 20
  120. #define EVENTS1 4
  121. #define EVENTS2 5
  122. #define DISPLAY1 6
  123. #define DISPLAY2 7
  124. #define DISPLAY3 8
  125. #define DISPLAY4 9
  126. #define DISPLAY5 10
  127. #define IMAGES1 100
  128. #define IMAGES2 101
  129. #define IMAGES3 102
  130. #define IMAGES4 103
  131. #define IMAGES5 104
  132. #define IMAGES6 105
  133. #define IMAGES7 106
  134. #define IMAGES8 107
  135. #define IMAGES9 108
  136. #define IMAGES10 109
  137. #define IMAGES11 110
  138. #define IMAGES12 111
  139. #define IMAGES13 112
  140.  
  141. #define DRAWING1 200
  142. #define DRAWING2 201
  143. #define DRAWING3 202
  144.  
  145. #define DISPLAY6 21
  146. #define DISPLAY7 22
  147. #define DISPLAY8 23
  148. #define XMDRAWING1 30
  149. #define COLORMAPS1 31
  150. #define COLORMAPS2 32
  151. #define COLORMAPS3 33
  152. #define FONTS1 40
  153. #define FONTS2 41
  154. #define FONTS3 42
  155. #define FONTS4 43
  156. #define FONTS5 44
  157. #define FONTS6 45
  158. #define FONTS7 46
  159. #define FONTS8 47
  160. #define FONTS9 48
  161. #define FONTS10 49
  162.  
  163. #define RESOURCE1 50
  164. #define RESOURCE2 51
  165. #define RESOURCE3 52
  166. #define RESOURCE4 53
  167. #define RESOURCE5 54
  168.  
  169. #define XTMUI1 300
  170. #define XTMUI2 301
  171. #define XTMUI3 302
  172. #define XTMUI4 303
  173.  
  174. extern char *X11cwd,X11home[];
  175.  
  176. typedef enum {
  177.   X11_BUTTON=1,
  178.   X11_TOGGLEBUTTON,
  179.   X11_MENUSTRIP,
  180.   X11_POPUPMENU,
  181.   X11_SCROLLBAR,
  182.   X11_ROWCOLUMN,
  183.   X11_PULLDOWNMENU,
  184.   X11_LABEL,
  185.   X11_SEPARATOR,
  186.   X11_FORM,
  187.   X11_FILESELECTIONBOX,
  188.   X11_PROMPTDIALOG,
  189.   X11_FORMDIALOG,
  190.   X11_FILESELECTIONDIALOG,
  191.   X11_TEXTFIELD,
  192.   X11_CASCADEBUTTON,
  193.   X11_DRAWINGAREA,
  194.   X11_TEXT,
  195.   X11_SCALE,
  196. } X11_Class;
  197.  
  198.  
  199. #include "lists.h"
  200.  
  201. extern ListNode_t *pMemoryList;
  202.  
  203. typedef char boolean;
  204.  
  205. typedef struct {
  206.   unsigned char nDisplayDepth;
  207.   unsigned char nDisplayMaxDepth;
  208.   unsigned short nDisplayWidth;
  209.   unsigned short nDisplayHeight;
  210.   unsigned short nDisplayMaxWidth;
  211.   unsigned short nDisplayMaxHeight;
  212.   unsigned short nDisplayColors;
  213.  
  214.   boolean bX11Open;
  215.   boolean bLibsOpen;
  216.   boolean bSubWins;
  217.   boolean bNeedBackRP;
  218.   boolean bX11Cursors;
  219.   boolean bWbSaved;
  220.   boolean bUse30;
  221.   boolean bClearMemList;
  222.   int nNumChildren;
  223. } DisplayGlobals_s;
  224.  
  225. extern DisplayGlobals_s DG;
  226.  
  227. typedef struct {
  228.   struct BitMap *pClipBM;
  229.   struct Layer *pPreviousLayer;
  230.   struct Region *pClipRegion;
  231.   int nXClipOrigin;
  232.   int nYClipOrigin;
  233.   boolean bNeedClip;
  234. } ClippingGlobals_s;
  235.  
  236.  
  237. extern ClippingGlobals_s CG;
  238.  
  239. typedef struct internalevent {
  240.   XEvent *xev;
  241.   struct internalevent *next;
  242.   int size;
  243. } _InternalXEvent;
  244.  
  245. typedef struct {
  246.   ULONG fwindowsig;
  247.   struct Window *X11eventwin;
  248.   _InternalXEvent *X11InternalEvents,*X11InternalEventsLast;
  249.   unsigned long GrabMask;
  250.   int GrabWin;
  251.   unsigned int nButtonMask;
  252.   int nPrevInside;
  253.   int nPeeked;
  254.   int nMouseX;
  255.   int nMouseY;
  256.   int nBorderX;
  257.   int nBorderY;
  258.   short nEventDrawable;
  259.   ULONG nClass;
  260.   UWORD nCode;
  261.   UWORD nQual;
  262.   boolean bHaveWinMsg;
  263.   boolean bDontWait;
  264.   boolean bButtonSwitch;
  265.   boolean bSkipInternal;
  266.   unsigned long nTime;
  267.   boolean bX11SkippedClient;
  268.   boolean bX11ReleaseAll;
  269. } EventGlobals_s;
  270.  
  271. extern EventGlobals_s EG;
  272.  
  273. #include <X11/Xlib.h>
  274.  
  275. extern Window prevwin;
  276. extern GC prevgc;
  277. extern struct BitMap *X11FillBitMap;
  278. extern int X11InternalFill;
  279. extern struct RastPort backfillrp,backfillrp2;
  280.  
  281. /* #define DEBUGXEMUL 1 */
  282. /* #define DEBUGXEMUL0 1 */
  283. /* #define DEBUGXEMUL_ENTRY 1*/
  284.  
  285. #define NORMAL_FILL (1<<31)
  286. #define INTERNAL_FILL (1<<30)
  287.  
  288. #define ROOTID 0xffff
  289.  
  290. extern int X11NewGC(GC newGC);
  291. extern int X11OldSubWindow(int win);
  292.  
  293. #endif /* LIBX11 */
  294.